我有一个Android应用程序,当用户点击时TextView,我想应用定义的样式。
TextView
我以为找到一个,textview.setStyle()但它不存在。我试过了
textview.setStyle()
textview.setTextAppearance();
但它不起作用。
我通过创建一个新的XML文件res/values/style.xml来做到这一点,如下所示:
res/values/style.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="boldText"> <item name="android:textStyle">bold|italic</item> <item name="android:textColor">#FFFFFF</item> </style> <style name="normalText"> <item name="android:textStyle">normal</item> <item name="android:textColor">#C0C0C0</item> </style> </resources>
我的“ strings.xml”文件中也有一个条目,如下所示:
“ strings.xml”
<color name="highlightedTextViewColor">#000088</color> <color name="normalTextViewColor">#000044</color>
然后,在我的代码中,我创建了一个ClickListener来捕获该TextView上的tap事件: 编辑: 自API 23起,不建议使用setTextAppearance
ClickListener
setTextAppearance
myTextView.setOnClickListener(new View.OnClickListener() { public void onClick(View view){ //highlight the TextView //myTextView.setTextAppearance(getApplicationContext(), R.style.boldText); if (Build.VERSION.SDK_INT < 23) { myTextView.setTextAppearance(getApplicationContext(), R.style.boldText); } else { myTextView.setTextAppearance(R.style.boldText); } myTextView.setBackgroundResource(R.color.highlightedTextViewColor); } });
要改回它,你可以使用以下命令:
if (Build.VERSION.SDK_INT < 23) { myTextView.setTextAppearance(getApplicationContext(), R.style.normalText); } else{ myTextView.setTextAppearance(R.style.normalText); } myTextView.setBackgroundResource(R.color.normalTextViewColor);